home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / haskell / glasgow / ghc-src.lha / ghc-0.16 / ANNOUNCE-0.16 next >
Text File  |  1993-07-13  |  6KB  |  147 lines

  1.          The Glasgow Haskell Compiler -- version 0.16
  2.          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  3.  
  4. The second public release of the Glasgow Haskell Compiler is now
  5. available (GHC, version 0.16). Binaries (recommended) and source are
  6. freely available by FTP; details appear below.
  7.  
  8. GHC 0.16 is still alpha-quality software.  This release in an interim
  9. measure, not as solid as I would prefer.  However, a lot has gone in
  10. since December.  The profiling system is Way Cool.  The compiler now
  11. has a strictness analyser and an update analyser.  Compiled programs
  12. tend to run faster.  Compilation speed is worse.  Bugs remain, but
  13. they tend to be work-around-able.
  14.  
  15. To run this release, you need a Sun4 or Sun3, probably with 16+MB
  16. memory, and GNU C (gcc), version 2.1 or greater, and "perl".
  17.  
  18. This system can be built from source using: itself (most likely to
  19. succeed), the previous GHC release (0.10) [least likely], or the
  20. Chalmers HBC compiler [in-between].  Please see the appropriate
  21. documentation for details.
  22.  
  23. Please report bugs to glasgow-haskell-bugs@dcs.glasgow.ac.uk and
  24. direct general queries to glasgow-haskell-request@<same>.
  25.  
  26. Will Partain
  27. (typist for the AQUA [formerly GRASP] project)
  28.  
  29. ....................................................................
  30.  
  31. Why a Haskell programmer might want to use GHC
  32. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  33. * GHC provides an extensible I/O system, based on a "monad" [1]. (The
  34.   standard Haskell I/O system is built on this foundation.)
  35.  
  36. * A number of significant language extensions are implemented:
  37.     - Fully fledged unboxed data types [2].
  38.     - Ability to write arbitrary in-line C-language code, using
  39.       the I/O monad to retain referential transparency.
  40.     - Incrementally-updatable arrays, also embedded in a monad.
  41.     - Mutable reference types.
  42.  
  43. * A new profiling system is supplied, which enables you to find out
  44.   which bits of your program are eating both *time* and the *space* [3].
  45.  
  46. * By default, the system uses a generational garbage collector which
  47.   lets you run programs whose live data is significantly larger than
  48.   the physical memory size before thrashing occurs.  (Conventional
  49.   2-space GC starts thrashing when the live data gets to about half
  50.   the physical memory size.)
  51.  
  52. * Good error messages.  Well, fairly good error messages.  Line
  53.   numbers are pretty accurate, and during type checking you get
  54.   several (accurate) error reports rather than just one.
  55.  
  56. * Performance: programs compiled with GHC "often" beat
  57.   Chalmers-HBC-compiled ones.  If you find programs where HBC wins,
  58.   please report it to us, as a bug :-).
  59.  
  60. Why a functional-language implementor might want to use GHC
  61. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  62. * We have tried very hard to write the compiler in a modular and
  63.   well-documented way, so that other researchers can modify and extend
  64.   it.  One of our goals is specifically to provide a framework to
  65.   support others' work.  Several people are already using it in this
  66.   way.
  67.  
  68. * Highly configurable runtime system.  Heavy use of C macros means
  69.   that you can modify much of the storage representation without
  70.   telling the compiler.  For example, the system comes with 4
  71.   different garbage collectors! (all working)
  72.  
  73. * Internals: extensive use of the second-order lambda calculus as an
  74.   intermediate code; the Spineless Tagless G-machine as evaluation
  75.   model [4].
  76.  
  77. * Various performance-measurement hooks.
  78.  
  79. Main shortcomings
  80. ~~~~~~~~~~~~~~~~~
  81. * No interactive system.  This is a batch compiler only.  (Any
  82.   volunteers?)
  83.  
  84. * Compiler is greedy on resources.  Going via C doesn't help here.
  85.  
  86. * This system should run on any Unix box.  We haven't had time to do
  87.   any non-Sun ports.  Help or prodding welcome.
  88.  
  89. References
  90. ~~~~~~~~~~
  91. All these papers come with the distribution [in ghc/docs/papers].
  92.  
  93. [1] "Imperative functional programming", Peyton Jones & Wadler, POPL '93
  94.  
  95. [2] "Unboxed data types as first-class citizens", Peyton Jones &
  96.     Launchbury, FPCA '91
  97.  
  98. [3] "Profiling lazy functional languages", Sansom & Peyton Jones,
  99.     Glasgow workshop '92
  100.  
  101. [4] "Implementing lazy functional languages on stock hardware", Peyton
  102.     Jones, Journal of Functional Programming, Apr 1992
  103.  
  104. How to get it
  105. ~~~~~~~~~~~~~
  106. This release is available, in whole or in part, from the usual Haskell
  107. anonymous FTP sites, in the directory pub/haskell/glasgow:
  108.  
  109.     ftp.dcs.glasgow.ac.uk  (130.209.240.50)
  110.     ftp.cs.chalmers.se     (129.16.225.66)          
  111.     nebula.cs.yale.edu     (128.36.13.1)
  112.  
  113. We are mirrored by src.doc.ic.ac.uk, in
  114. computing/programming/languages/haskell/glasgow, and you can get files
  115. from there by every means known to humanity.
  116.  
  117. These are the available files (.Z for compressed, .gz for gzipped) --
  118. some are `on demand', ask if you don't see them:
  119.  
  120. ghc-0.16-bin-sun4.tar.{Z,gz} A binary distribution -- avoid compiling
  121.             altogether!  For SunOS 4.1.x; assumes you have
  122.             GNU C (gcc) version 2.x around...
  123.  
  124. ghc-0.16-src.tar.gz    The basic source distribution; about 3MB.
  125.  
  126. ghc-0.16-hi-files-{hbc,ghc-0.10}.tar.gz
  127.             Interface files for the compiler proper
  128.             (ghc/compiler/*/*.hi), to be used if booting
  129.             with either HBC or GHC version 0.10.  (The
  130.             distributed .hi files assume GHC version
  131.             0.16.)
  132.             
  133. ghc-0.16-hc-files.tar.gz The intermediate C files for the compiler
  134.              proper, the prelude, and `Hello, world'.
  135.              Used when porting.
  136.  
  137. ghc-0.16-patch-*    Patches to the original distribution.  There
  138.             are none to start with, of course, but there
  139.             might be by the time you grab the files.
  140.             Please check for them.
  141.  
  142. There are no diffs from version 0.10, as they would be laughably huge.
  143.  
  144. Once you have the distribution, please follow the pointers in the
  145. ghc/README file to find all of the documentation in and about this
  146. release.
  147.